Easy Time Tracker

1. Introduction
As the name suggest ETT enables easy recording and billing of time for small and intermediate businesses. NOTE: Right now the only Language is hard coded german. This may change in the future.
2. Features
    - Recording of work time incl. Sanity check(Overlap)
    - Structured in Customer->Projects->Tasks
    - Simple rights management for creating, deleting and editing of customers, projects, tasks and users
    - Rudimentary brute force protection. IPs that fail to login too often or try to access modules beyond their rights will be blocked for time x.
    - Bill time per project.

2. Motivation
Available time tracking systems are either enterprise-level and too expensive or they have too many dependencies that cause problems(Node.js, jquery, ...) or do not run on any system(ARM).  

So the development aim was to build a minimalist time tracking and billing system, that has as few dependencies as possible.

3. Installation
    3.1 Dependencies
        a working MYSQL-DB or compatible(MARIA-DB).
        Web-Server with support for PHP (z.B. NGINX)
    3.2 Installation
        Copy files into web-directory
        Adapt file permissions
        Enter your DB-Credentials in config.php.
        Initialize DB with "setup.sql".
        Optional: Set language in config.php (LANG)
        Optional: Test data can be found in "testdata.sql".
        Login as "admin" pw: "admin" and use the user management(top left) to change your password.
        Done.

4. Customization
    4.1 Language
        To add a new language a txt-file needs to be created in the "lang" subfolder and filled according to en.txt and de.txt examples.
        NOTE: Some translations are formats for sprintf/printf and need to be treated accordingly. 
        Because the order of arguments is is fixed they can be changed in the format string like "%2s xxxzzzzyyy %1s" , where needed.
        DO NOT USE ANY ":" in your translations, because it is the delimeter between key and translation.

5. Credits
    The Oxygen Icon Theme
    Copyright (C) 2007 Nuno Pinheiro <nuno@oxygen-icons.org>
    Copyright (C) 2007 David Vignoni <david@icon-king.com>
    Copyright (C) 2007 David Miller <miller@oxygen-icons.org>
    Copyright (C) 2007 Johann Ollivier Lapeyre <johann@oxygen-icons.org>
    Copyright (C) 2007 Kenneth Wimer <kwwii@bootsplash.org>
    Copyright (C) 2007 Riccardo Iaconelli <riccardo@oxygen-icons.org>

    All icons used are from "The Oxygen Icon Theme" which uses the "GNU LESSER GENERAL PUBLIC LICENSE" . Details can be found in "icons/icon_License.txt"
    JS Time- and Date-Picker
    Since <input type="datetime"> is still "Neuland" to most browsers and I had no intention to reinvent the wheel for the 100st time, I used the following scripts:
    
    vanilla.datepicker.(js|css) -> Author: xylphid, License: MIT, Source: https://www.cssscript.com/lightweight-date-picker-in-vanilla-javascript/
This one had to be modified because of the unfortunate position of its dialog.
    js-timepicker.(js|css) -> Author: Via-profit, License: MIT, Source: https://www.cssscript.com/minimal-timer-picker-pure-javascript/



6. Tests
    The project was tested and developed on a Linux machine with NGINX / MARIA-DB .

7. Further development
    After the Core-Features run without issues, the development is done for me.
    Should I in spite of that suffer from to much spare time I will try the following:
	Multi Language support.
	More detailed rights management.

Whoever wants further features can make me a reasonable offer or develop it them selfes.
